module Mult_array
	#(parameter length = 16)
	(
		input signed [length-1:0] IS0,
		input signed [length-1:0] IS1,
		input signed [length-1:0] IS2,
		input signed [length-1:0] IS3,
		input signed [length-1:0] IS4,
		input signed [length-1:0] IS5,
		input signed [length-1:0] IS6,
		input signed [length-1:0] IS7,
		input signed [length-1:0] IS8,
		input signed [length-1:0] IS9,
		input signed [length-1:0] IS10,
		input signed [length-1:0] IS11,
		input signed [length-1:0] IS12,
		input signed [length-1:0] IS13,
		input signed [length-1:0] IS14,
		input signed [length-1:0] IS15,
		input signed [length-1:0] IS16,
		input signed [length-1:0] IS17,
		input signed [length-1:0] IS18,
		input signed [length-1:0] IS19,
		input signed [length-1:0] IS20,
		input signed [length-1:0] IS21,
		input signed [length-1:0] IS22,
		input signed [length-1:0] IS23,
		input signed [length-1:0] IS24,
		input signed [length-1:0] IS25,
		input signed [length-1:0] IS26,
		input signed [length-1:0] IS27,
		input signed [length-1:0] IS28,
		input signed [length-1:0] IS29,
		input signed [length-1:0] IS30,
		input signed [length-1:0] IS31,

		input signed [length-1:0] W0,
		input signed [length-1:0] W1,
		input signed [length-1:0] W2,
		input signed [length-1:0] W3,
		input signed [length-1:0] W4,
		input signed [length-1:0] W5,
		input signed [length-1:0] W6,
		input signed [length-1:0] W7,
		input signed [length-1:0] W8,
		input signed [length-1:0] W9,
		input signed [length-1:0] W10,
		input signed [length-1:0] W11,
		input signed [length-1:0] W12,
		input signed [length-1:0] W13,
		input signed [length-1:0] W14,
		input signed [length-1:0] W15,
		input signed [length-1:0] W16,
		input signed [length-1:0] W17,
		input signed [length-1:0] W18,
		input signed [length-1:0] W19,
		input signed [length-1:0] W20,
		input signed [length-1:0] W21,
		input signed [length-1:0] W22,
		input signed [length-1:0] W23,
		input signed [length-1:0] W24,
		input signed [length-1:0] W25,
		input signed [length-1:0] W26,
		input signed [length-1:0] W27,
		input signed [length-1:0] W28,
		input signed [length-1:0] W29,
		input signed [length-1:0] W30,
		input signed [length-1:0] W31,

		output signed [2*length-1:0] Mult_result0,
		output signed [2*length-1:0] Mult_result1,
		output signed [2*length-1:0] Mult_result2,
		output signed [2*length-1:0] Mult_result3,
		output signed [2*length-1:0] Mult_result4,
		output signed [2*length-1:0] Mult_result5,
		output signed [2*length-1:0] Mult_result6,
		output signed [2*length-1:0] Mult_result7,
		output signed [2*length-1:0] Mult_result8,
		output signed [2*length-1:0] Mult_result9,
		output signed [2*length-1:0] Mult_result10,
		output signed [2*length-1:0] Mult_result11,
		output signed [2*length-1:0] Mult_result12,
		output signed [2*length-1:0] Mult_result13,
		output signed [2*length-1:0] Mult_result14,
		output signed [2*length-1:0] Mult_result15,
		output signed [2*length-1:0] Mult_result16,
		output signed [2*length-1:0] Mult_result17,
		output signed [2*length-1:0] Mult_result18,
		output signed [2*length-1:0] Mult_result19,
		output signed [2*length-1:0] Mult_result20,
		output signed [2*length-1:0] Mult_result21,
		output signed [2*length-1:0] Mult_result22,
		output signed [2*length-1:0] Mult_result23,
		output signed [2*length-1:0] Mult_result24,
		output signed [2*length-1:0] Mult_result25,
		output signed [2*length-1:0] Mult_result26,
		output signed [2*length-1:0] Mult_result27,
		output signed [2*length-1:0] Mult_result28,
		output signed [2*length-1:0] Mult_result29,
		output signed [2*length-1:0] Mult_result30,
		output signed [2*length-1:0] Mult_result31
	);

Mult #(length) Mult_u0(.Muld(IS0), .Mulr(W0), .result(Mult_result0));
Mult #(length) Mult_u1(.Muld(IS1), .Mulr(W1), .result(Mult_result1));
Mult #(length) Mult_u2(.Muld(IS2), .Mulr(W2), .result(Mult_result2));
Mult #(length) Mult_u3(.Muld(IS3), .Mulr(W3), .result(Mult_result3));
Mult #(length) Mult_u4(.Muld(IS4), .Mulr(W4), .result(Mult_result4));
Mult #(length) Mult_u5(.Muld(IS5), .Mulr(W5), .result(Mult_result5));
Mult #(length) Mult_u6(.Muld(IS6), .Mulr(W6), .result(Mult_result6));
Mult #(length) Mult_u7(.Muld(IS7), .Mulr(W7), .result(Mult_result7));
Mult #(length) Mult_u8(.Muld(IS8), .Mulr(W8), .result(Mult_result8));
Mult #(length) Mult_u9(.Muld(IS9), .Mulr(W9), .result(Mult_result9));
Mult #(length) Mult_u10(.Muld(IS10), .Mulr(W10), .result(Mult_result10));
Mult #(length) Mult_u11(.Muld(IS11), .Mulr(W11), .result(Mult_result11));
Mult #(length) Mult_u12(.Muld(IS12), .Mulr(W12), .result(Mult_result12));
Mult #(length) Mult_u13(.Muld(IS13), .Mulr(W13), .result(Mult_result13));
Mult #(length) Mult_u14(.Muld(IS14), .Mulr(W14), .result(Mult_result14));
Mult #(length) Mult_u15(.Muld(IS15), .Mulr(W15), .result(Mult_result15));
Mult #(length) Mult_u16(.Muld(IS16), .Mulr(W16), .result(Mult_result16));
Mult #(length) Mult_u17(.Muld(IS17), .Mulr(W17), .result(Mult_result17));
Mult #(length) Mult_u18(.Muld(IS18), .Mulr(W18), .result(Mult_result18));
Mult #(length) Mult_u19(.Muld(IS19), .Mulr(W19), .result(Mult_result19));
Mult #(length) Mult_u20(.Muld(IS20), .Mulr(W20), .result(Mult_result20));
Mult #(length) Mult_u21(.Muld(IS21), .Mulr(W21), .result(Mult_result21));
Mult #(length) Mult_u22(.Muld(IS22), .Mulr(W22), .result(Mult_result22));
Mult #(length) Mult_u23(.Muld(IS23), .Mulr(W23), .result(Mult_result23));
Mult #(length) Mult_u24(.Muld(IS24), .Mulr(W24), .result(Mult_result24));
Mult #(length) Mult_u25(.Muld(IS25), .Mulr(W25), .result(Mult_result25));
Mult #(length) Mult_u26(.Muld(IS26), .Mulr(W26), .result(Mult_result26));
Mult #(length) Mult_u27(.Muld(IS27), .Mulr(W27), .result(Mult_result27));
Mult #(length) Mult_u28(.Muld(IS28), .Mulr(W28), .result(Mult_result28));
Mult #(length) Mult_u29(.Muld(IS29), .Mulr(W29), .result(Mult_result29));
Mult #(length) Mult_u30(.Muld(IS30), .Mulr(W30), .result(Mult_result30));
Mult #(length) Mult_u31(.Muld(IS31), .Mulr(W31), .result(Mult_result31));

endmodule